home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revolution - Das Atari CD Magazin 1997
/
Revolution - Das Atari CD Magazin 1.iso
/
software
/
anwendng
/
qed_397
/
sourcen
/
xufsl.h
< prev
Wrap
Text File
|
1995-12-09
|
13KB
|
202 lines
/**************************************************************************/
/* Definitionen für den xUFSL */
/* */
/* 10.09.94 Version 1.00 */
/* 14.09.94 Erweitert um Definitionen des UFSL Version 0.91-0.97 */
/* Event-Funktion aus dem xUFSL-Aufruf entfernt */
/* Rückgabewerte an UFSL angepaßt. Die Wert UFS_NO_FONTS und */
/* UFS_NO_FONTSIZE sind nur aus Kompatibilitätsgründen defi- */
/* niert. Solche Fehler werden intern vom xUFSL abfangen (hof- */
/* fentlich...). */
/* 18.09.94 Neue Flags UFS_AUTO_UPDATE und UFS_ERROR_MSG. */
/* 28.09.94 Neue Flags UFS_BITMAP_FONTS und UFS_KERNING_INFO. */
/* Schriftbreite erweitert: Struktur FW_INFO. In der Struktur */
/* wird neben der Zeichenbreite die Weite des Track-Kernings */
/* und die Aktivierung des Paar-Kernings zurückgegeben. */
/* Definition der max. Zeichenbreite MAX_CHAR_WIDTH. */
/* 01.10.94 UFS_AUTO_UPDATE wieder abgeschafft. */
/* Neues Flag UFS_INDIRECT und Struktur XUFSL_LIST. */
/* Wenn UFS_INDIRECT gesetzt ist, wird der Parameter info beim */
/* beim xUFSL-Aufruf als Zeiger auf eine XUFSL_LIST interpre- */
/* tiert. Die Anzahl der Einträge in dieser Liste muß im Parame- */
/* ter fontid, der erste selektierte Eintrag in fontsize überge- */
/* ben werden. Über ein Popup können dann die in der Liste ange- */
/* gebenen Sets in EINEM xUFSL-Dialog geändert werden! Von den */
/* weiteren Parametern werden in diesem Fall nur noch die Dia- */
/* logfont-IDs beachtet. Der xUFSL versorgt die Einträge in der */
/* XUFSL_LIST. */
/* Verwendungsbeispiel: Siehe CALLUFSL.C! */
/**************************************************************************/
#if !defined( __XUFSL__)
#define __XUFSL__
/**************************************************************************/
/* Kennung des xUfsl */
/**************************************************************************/
#define xUFS_ID 'xUFS'
/**************************************************************************/
/* Rückgabewerte des xUfsl */
/**************************************************************************/
#define UFS_RES_ERROR -7 /* Auflösung kleiner als 640*400 Punkte */
#define UFS_NO_HANDLE -6 /* Kein Handle frei */
#define UFS_NO_WINDOW -5 /* Kein Fenster frei */
#define UFS_NO_FONTS -4 /* Keine Fonts geladen */
#define UFS_NO_FONTSIZE -3 /* Fontgröße nicht identifizierbar */
#define UFS_ACTIVE -2 /* Fontselektor ist bereits aktiv */
#define UFS_ERROR -1 /* Speichermangel o.ä. */
#define UFS_STOP 0 /* <Abbruch> gewählt */
#define UFS_OK 1 /* <Ok> gewählt */
/**************************************************************************/
/* Dialogtypen --> dialtyp, s.u. */
/**************************************************************************/
#define UFS_DIALOG 0 /* Modaler Dialog */
#define UFS_WINDOW 1 /* Unmodaler Dialog */
/**************************************************************************/
/* Flags für xUFSL --> flags, s.u. */
/**************************************************************************/
#define UFS_SIZE_CHANGE 0x00000001 /* Schriftgröße änderbar? */
#define UFS_WIDTH_CHANGE 0x00000002 /* Schriftbreite änderbar? */
#define UFS_ATTR_CHANGE 0x00000004 /* Schriftattribute wählbar? */
#define UFS_SKEW_CHANGE 0x00000008 /* Schriftneigung änderbar? */
#define UFS_COLOR_CHANGE 0x00000010 /* Schriftfarbe änderbar? */
#define UFS_SIZE_DEFAULT 0x00000020 /* Schriftgröße "DEFAULT" erlaubt? */
#define UFS_ATTR_INVERS 0x00000040 /* Sonderattribut "invers" wählbar? */
#define UFS_KERNING_INFO 0x00000080 /* Kerning-Informationen änderbar? */
#define UFS_GDOS_FONTS 0x00000100 /* GDOS-Fonts erlaubt? */
#define UFS_PROP_FONTS 0x00000200 /* Proportionalfonts erlaubt? */
#define UFS_BITMAP_FONTS 0x00000400 /* Nur Bitmap-Fonts erlaubt? */
#define UFS_WIND_DIALOG 0x00001000 /* Dialog im Fenster? */
#define UFS_ERROR_MSG 0x00008000 /* Fehler als Alertbox anzeigen? */
#define UFS_INDIRECT 0x80000000L /* Wird eine XUFSL_LIST verwendet? */
/**************************************************************************/
/* UFSL-Initialisierungsfunktion, nur aus Kompatibilitätsgründen imple- */
/* mentiert. Liefert immer SUCCESS. */
/**************************************************************************/
typedef WORD cdecl (*UFSL_INIT)(void);
/**************************************************************************/
/* Standard-Fontselektor */
/**************************************************************************/
typedef WORD cdecl (*UFSL)(
WORD handle, /* Handle der VDI-Workstation */
WORD fonts, /* Gesamtzahl der geladenen Fonts */
WORD flag, /* 0=Alle Fonts, 1=Nur unproportionale Fonts */
UBYTE *info, /* Infotext */
WORD *fontid, /* Gewählte Font-ID */
WORD *fontsize /* Gewählte Font-Größe */
);
/**************************************************************************/
/* Neuer Standard-Fontselektor ab UFSL 0.97 */
/**************************************************************************/
typedef WORD cdecl (*NUFSL)(
WORD handle, /* Handle der VDI-Workstation */
WORD flag, /* 0=Alle Fonts, 1=Nur unproportionale Fonts */
UBYTE *info, /* Infotext */
WORD *fontid, /* Gewählte Font-ID */
WORD *fontsize /* Gewählte Font-Größe */
);
/**************************************************************************/
/* Benutzerdefinierte Hilfefunktion, sofern gewünscht. Nur wenn diese */
/* ungleich NULL ist, wird der Hilfe-Knopf überhaupt aktiviert. */
/**************************************************************************/
typedef WORD cdecl (*UFSL_HELP)(void);
/**************************************************************************/
/* Redraw-Funktion */
/* Die Redraw-Funktion wird NICHT bei folgenden Ereignissen aufgerufen: */
/* WM_TOPPED, WM_NEWTOP, WM_CLOSED. */
/**************************************************************************/
typedef void cdecl (*MSGFUNC)(
WORD event, /* Event */
WORD *msgbuff /* Message-Puffer */
);
/**************************************************************************/
/* Schriftbreiten-Informationsstruktur ('FontWidthInfo') */
/* pair Pair-Kerning (0=nein, 1=ja): "Zusammenschieben" bestimmter */
/* Buchstabenpaare (z.B. "Fa", "Ve"). */
/* track Art des Track-Kernings (0=ohne, 1=normal, 2=eng, 3=sehr eng): */
/* Hiermit wird der generelle Abstand zwischen den Buchstaben be- */
/* stimmt. */
/* width Schriftbreite (0..MAX_CHAR_WIDTH Punkte) */
/**************************************************************************/
#define MAX_CHAR_WIDTH 8191
#if 0
Ist auch in xfsl.h definiert!!
typedef struct {
UWORD pair : 1;
UWORD track : 2;
UWORD width : 13;
} FW_INFO;
#endif
/**************************************************************************/
/* Bei gesetztem UFS_INDIRECT-Bit wird statt in info ein Zeiger auf eine */
/* XUFSL_LIST übergeben. Die Anzahl der Einträge dieser Liste muß im Pa- */
/* rameter fontid übergeben werden. */
/**************************************************************************/
typedef struct {
ULONG flags; /* Flags zur Funktionsüberwachung */
UBYTE *entry; /* Popup-Eintrag, muß eindeutig sein! */
WORD fontid; /* Voreingestellte/gewählte ID */
WORD fontsize; /* Voreingestellte/gewählte Größe */
FW_INFO fontwidth; /* Voreingestellte/gewählte Breite+Kerning */
WORD fontattr; /* Voreingestellte/gewählte Attribute */
WORD fontcol; /* Voreingestellte/gewählte Farbe */
WORD fontskew; /* Voreingestellte/gewählte Neigung */
} XUFSL_LIST;
/**************************************************************************/
/* Extended-Fontselektor */
/**************************************************************************/
typedef WORD cdecl (*XUFSL)(
WORD handle, /* Handle der VDI-Workstation */
ULONG flags, /* Flags zur Funktionsüberwachung */
UBYTE *title, /* Fenstertitel, Default: Copyright-Info */
UBYTE *info, /* Fensterinfo, Default: 'Schriftauswahl' */
/* bzw. Zeiger auf eine XUFSL_LIST */
WORD smallid, /* ID SMALL-Zeichensatz im xUFSL-Dialog */
WORD ibmid, /* ID IBM-Zeichensatz im xUFSL-Dialog */
WORD *fontid, /* Voreingestellte/gewählte ID */
/* bzw. Anzahl der Einträge der XUFSL_LIST */
WORD *fontsize, /* Voreingestellte/gewählte Größe */
/* bzw. Aufsatzpunkt in der XUFSL_LIST */
FW_INFO *fontwidth, /* Voreingestellte/gewählte Breite und */
/* Kerning-Informationen */
WORD *fontattr, /* Voreingestellte/gewählte Attribute */
WORD *fontcol, /* Voreingestellte/gewählte Farbe */
WORD *fontskew /* Voreingestellte/gewählte Neigung */
);
/**************************************************************************/
/* Eigentliche xUFSL-Struktur */
/**************************************************************************/
typedef struct {
ULONG id; /* Kennung des xUFSL (xUFS) */
UWORD version; /* Version (BCD-Format) */
UWORD dialtyp; /* Dialogtyp */
UFSL_INIT fontsel_init; /* Initialisierungsfunktion (Dummy) */
UFSL fontsel_input; /* Standard-Selektorfunktion */
OBJECT *helpbutton; /* Hilfe-Knopf (BOXTEXT), maximale */
/* Textlänge 9 Zeichen (OHNE Prüfung!). */
UFSL_HELP helpfunc; /* Eigene Hilfefunktion */
UBYTE *examplestr; /* Beispieltext für Fontdarstellung */
MSGFUNC msgfunc; /* Redrawfunktion */
NUFSL fontsel_exinput; /* Neuer Standard-Selektor */
XUFSL font_selexinput; /* Extended-Selektorfunktion */
} xUFSL_struct;
#endif